package com.cy;

import com.cy.pj.sys.service.realm.ShiroRealm;
import org.apache.shiro.spring.web.config.DefaultShiroFilterChainDefinition;
import org.apache.shiro.spring.web.config.ShiroFilterChainDefinition;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;

@SpringBootApplication
public class Cgb2012Application {

    public static void main(String[] args) {
        SpringApplication.run(Cgb2012Application.class, args);
    }

    @Bean
    public ShiroRealm realm(){ //org.apache.shiro.realm.Realm
        return new ShiroRealm();
    }

    /**
     * 基于此对象定义过滤规则，例如设置那些请求需要认证，那些不需要
     * ShiroFilterChainDefinition 此对象中定义了若干过滤其Filter
     * 基于这些过滤器和我们定义的过滤规则，对业务进行实现
     */
    @Bean
    public ShiroFilterChainDefinition shiroFilterChainDefinition() {
        //定义过滤链对象
        DefaultShiroFilterChainDefinition chainDefinition =
                new DefaultShiroFilterChainDefinition();
        //许可匿名访问,（anon=匿名操作）
        chainDefinition.addPathDefinition("/user/login", "anon");

        //设置哪些资源需要认证才可访问
        //这里的这个url（例如：/user/**），要调用过滤链中的过滤器（authc）
//        chainDefinition.addPathDefinition("/**", "authc");

        return chainDefinition;
    }
}
